#ifndef __NJGIS_NJSERVICEACCESS_H__
#define __NJGIS_NJSERVICEACCESS_H__

#include "../include/INxServiceAccess.h"
#include "json/json.h"
#include "NxService.h"
#include "NxDataConfiguration.h"

namespace NJGIS
{
	namespace SERVICE
	{
		class NjServiceAccess : public virtual INjServiceAccess, public virtual NjService
		{
		public:
			NjServiceAccess(const char* ip, int port):NjService(ip, port){};

			virtual int getModelServicesList( std::vector<NJGIS::SERVICE::INjModelService*> &list );

			virtual NJGIS::SERVICE::INjModelService* getModelServiceByOID( const char* oid );

			virtual int getModelServicesByName( const char* name, std::vector<NJGIS::SERVICE::INjService*> &list );

			virtual NJGIS::SERVICE::INjData* getDataServiceByID( const char* id );

			virtual NJGIS::SERVICE::INjData* uploadDataByFile( const char* filepath, const char* tag );

			virtual NJGIS::SERVICE::INjData* uploadDataStream( const char* stream, const char* tag );

			virtual NJGIS::SERVICE::INjDataConfiguration* createDataConfig();

			virtual INjModelServiceRecord* getModelServiceRecordByID( const char* msrid );

			virtual INjModelServiceInstance* getModelServiceInstanceByGUID( const char* guid );

		};
	}
}

#endif